#ifndef CHESS_H
#define CHESS_H
#include <string>
#include <map>

class Chess{
public:
    virtual ~Chess(){};
    virtual Chess* Clone()=0;
    virtual void addAttribute(std::string key,std::string value){
        attributes[key] = value;
    }
    virtual std::string getAttribute(std::string key){
        return attributes[key];
    }
    virtual void setAttribute(std::string key,std::string value){
        attributes[key] = value;
    }
protected:
    std::map<std::string,std::string>attributes;
private:

};

#endif // CHESS_H
